From: Richard M. Stallman Date: Sun, 9 May 1993 17:58:55 +0000 (+0000) Subject: (kbd-macro-query): Use query-replace-map to define answers. X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~96353 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=af400c0042489fe5a420f6739769d75fbc0e5144;p=emacs.git (kbd-macro-query): Use query-replace-map to define answers. --- diff --git a/lisp/macros.el b/lisp/macros.el index 41c021897cd..a6b50c4732a 100644 --- a/lisp/macros.el +++ b/lisp/macros.el @@ -124,25 +124,47 @@ C-l -- redisplay screen and ask again." (recursive-edit)) (if (not executing-macro) nil - (let ((loop t)) + (let ((loop t) + (msg (substitute-command-keys + "Proceed with macro?\\\ + (\\[act], \\[skip], \\[exit], \\[recenter], \\[edit]"))) (while loop - (let ((char (let ((executing-macro nil) - (defining-kbd-macro nil)) - (message "Proceed with macro? (Space, DEL, C-d, C-r or C-l) ") - (read-char)))) - (cond ((= char ? ) + (let ((key (let ((executing-macro nil) + (defining-kbd-macro nil)) + (message msg) + (read-event))) + def) + (setq key (vector key)) + (setq def (lookup-key query-replace-map key)) + (cond ((eq def 'act) (setq loop nil)) - ((= char ?\177) + ((eq def 'skip) (setq loop nil) (setq executing-macro "")) - ((= char ?\C-d) + ((eq def 'exit) (setq loop nil) (setq executing-macro t)) - ((= char ?\C-l) + ((eq def 'recenter) (recenter nil)) - ((= char ?\C-r) + ((eq def 'edit) (let (executing-macro defining-kbd-macro) - (recursive-edit)))))))))) + (recursive-edit))) + ((eq def 'quit) + (setq quit-flag t)) + (t + (or (eq def 'help) + (ding)) + (with-output-to-temp-buffer "*Help*" + (princ + (substitute-command-keys + "Specify how to procede with keyboard macro execution. +Possibilities: \\ +\\[act] Finish this iteration normally and continue with the next. +\\[skip] Skip the rest of this iteration, and start the next. +\\[exit] Stop the macro entirely right now. +\\[recenter] Redisplay the screen, then ask again. +\\[edit] Enter recursive edit; ask again when you exit from that.")))) + ))))))) ;;;###autoload (defun apply-macro-to-region-lines (top bottom &optional macro)